package col

import (
	tableConsts "yunj/pkg/yunj/core/builder/builderconsts"
	"yunj/pkg/yunj/core/builder/table"
)

type Json struct {
	table.Col
}

func NewJson(field string, title ...string) *Json {
	c := &Json{}
	// 设置默认值
	c.Type = tableConsts.TABLE_COL_TYPE_NORMAL

	table.SetColInstance(&c.Col, c)
	c.SetColField(field)
	if len(title) > 0 {
		c.SetTitle(title[0])
	}
	return c
}

// 设置标题
func (c *Json) SetTitle(title string) *Json {
	c.Title = title
	return c
}

// 设置排列方式
func (c *Json) SetAlign(align string) *Json {
	c.Align = align
	return c
}

// 设置是否开启列的排序功能
func (c *Json) SetSort(yes bool) *Json {
	c.Sort = yes
	return c
}

// 设置固定列
func (c *Json) SetFixed(fixed string) *Json {
	c.Fixed = fixed
	return c
}

// 设置隐藏列
func (c *Json) SetHide(hide string) *Json {
	c.Hide = hide
	return c
}

// 设置宽度
func (c *Json) SetWidth(width any) *Json {
	c.Width = width
	return c
}

// 设置最小宽度
func (c *Json) SetMinWidth(minWidth uint64) *Json {
	c.MinWidth = minWidth
	return c
}

// 设置最大宽度
func (c *Json) SetMaxWidth(maxWidth uint64) *Json {
	c.MaxWidth = maxWidth
	return c
}

// 设置权限
func (c *Json) SetAuth(auth string) *Json {
	c.Auth = auth
	return c
}
